Current advanced telecommunication services are composed of huge program instructions that are disjointedly distributed across various telecommunication platforms. The ever increasing end-user demand for intelligent services has forced the telecommunication providers to rapidly offer intelligent services that have resulted in complex, costly, and inflexible software architectures. These current software architectures are driven by individual service needs and quite often a number of capabilities are duplicated across multiple services. Furthermore, these current complex software architectures can introduce a subtle, unwarranted interaction between different services. Elaborate testing must be undertaken to ensure that a new service does not adversely affect existing services.
Consequently, these service program instructions suffer several shortcomings. They are difficult to maintain while a call is active, difficult to port onto a new platform and costly to develop. Offering customers bundled services is very difficult due to the lack of correlation of capabilities across various platforms. Furthermore, also due to the lack of correlation, as several services are to be activated for a given call, the service program instruction sets can only be performed consecutively, rather than simultaneously. Thus, they consume an enormous amount of the real-time and memory resources of the actual network elements, i.e., switches, databases, etc. Consequently, these telecommunication services are very complex and inflexible, and customers are forced to buy stand alone service offerings.